// debug utils
let debugUtil = module.exports = {};
const DEBUG_BRK = '--debug-brk';
const DEBUG = '--debug';

debugUtil.isDebugging = function () {
    let execArg;
    for (let i = 0; i < process.execArgv.length; i++) {
        execArg = process.execArgv[i];
        // console.log(execArg + '=');
        if (isArgvDebugCheckPort(execArg)) {
            return true;
        }
    }

    return false;
};

debugUtil.isDebuggingNotCheckPort = function () {
    let execArg;
    for (let i = 0; i < process.execArgv.length; i++) {
        execArg = process.execArgv[i];
        if (isArgvDebugNotCheckPort(execArg)) {
            return true;
        }
    }
    return false;
};

function isArgvDebugCheckPort(parameter) {
    if (!parameter) {
        return false;
    }
    let brkPort, debugPort;
    let debugParameter = DEBUG_BRK + '=';
    if (parameter.indexOf(debugParameter) === 0) {
        brkPort = parseInt(parameter.substring(debugParameter.length));
    }
    debugParameter = DEBUG + '=';
    if (parameter.indexOf(debugParameter) === 0) {
        debugPort = parseInt(parameter.substring(debugParameter.length));
    }

    if (!isNaN(brkPort) || !isNaN(debugPort)) {
        return true;
    }

    return false;

}

function isArgvDebugNotCheckPort(parameter) {
    if (!parameter) {
        return false;
    }
    let isBrkPort, isDebugPort;
    if (parameter.indexOf(DEBUG_BRK) !== -1) {
        isBrkPort = true;
    }
    if (parameter.indexOf(DEBUG) !== -1) {
        isDebugPort = true;
    }

    return isBrkPort || isDebugPort;
}
debugUtil.DEBUG_BRK = DEBUG_BRK;
debugUtil.DEBUG = DEBUG;